home *** CD-ROM | disk | FTP | other *** search
/ BMUG Revelations / BMUG Revelations.toast / Programming / Programming Languages / Harvest C / MPW Int & Lib / Interfaces / Packages.h < prev    next >
Text File  |  1991-04-17  |  10KB  |  286 lines

  1. /************************************************************
  2.  
  3. Created: Friday, January 25, 1991 at 11:31 AM
  4.     Packages.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.         Copyright Apple Computer, Inc.    1985-1990
  9.         All rights reserved
  10.  
  11. ************************************************************/
  12.  
  13.  
  14. #ifndef __PACKAGES__
  15. #define __PACKAGES__
  16.  
  17. #ifndef __TYPES__
  18. #include <Types.h>
  19. #endif
  20.  
  21. #ifndef __STANDARDFILE__
  22. #include <StandardFile.h>
  23. #endif
  24.  
  25. #ifndef __SCRIPT__
  26. #include <Script.h>
  27. #endif
  28.  
  29.  
  30. enum {
  31.  
  32.     listMgr = 0,                /*list manager*/
  33.     dskInit = 2,                /*Disk Initializaton*/
  34.     stdFile = 3,                /*Standard File*/
  35.     flPoint = 4,                /*Floating-Point Arithmetic*/
  36.     trFunc = 5,                 /*Transcendental Functions*/
  37.     intUtil = 6,                /*International Utilities*/
  38.     bdConv = 7,                 /*Binary/Decimal Conversion*/
  39.     editionMgr = 11,            /*Edition Manager*/
  40.     currSymLead = 16,
  41.     currNegSym = 32,
  42.     currTrailingZ = 64,
  43.     currLeadingZ = 128,
  44.     zeroCycle = 1,              /*0:00 AM/PM format*/
  45.     longDay = 0,                /*day of the month*/
  46.     longWeek = 1,               /*day of the week*/
  47.     longMonth = 2,              /*month of the year*/
  48.     longYear = 3,               /*year*/
  49.     supDay = 1,                 /*suppress day of month*/
  50.     supWeek = 2,                /*suppress day of week*/
  51.     supMonth = 4                /*suppress month*/
  52. };
  53. enum {
  54.     supYear = 8,                /*suppress year*/
  55.     dayLdingZ = 32,
  56.     mntLdingZ = 64,
  57.     century = 128,
  58.     secLeadingZ = 32,
  59.     minLeadingZ = 64,
  60.     hrLeadingZ = 128,
  61.  
  62.     verUS = 0,
  63.     verFrance = 1,
  64.     verBritain = 2,
  65.     verGermany = 3,
  66.     verItaly = 4,
  67.     verNetherlands = 5,
  68.     verFrBelgiumLux = 6,        /* French for Belgium & Luxembourg */
  69.     verSweden = 7,
  70.     verSpain = 8,
  71.     verDenmark = 9,
  72.     verPortugal = 10,
  73.     verFrCanada = 11,
  74.     verNorway = 12
  75. };
  76. enum {
  77.     verIsrael = 13,
  78.     verJapan = 14,
  79.     verAustralia = 15,
  80.     verArabic = 16,             /* synonym for verArabia */
  81.     verFinland = 17,
  82.     verFrSwiss = 18,            /* French Swiss */
  83.     verGrSwiss = 19,            /* German Swiss */
  84.     verGreece = 20,
  85.     verIceland = 21,
  86.     verMalta = 22,
  87.     verCyprus = 23,
  88.     verTurkey = 24,
  89.     verYugoCroatian = 25,       /* Croatian system for Yugoslavia */
  90.     verIndiaHindi = 33,         /* Hindi system for India */
  91.     verPakistan = 34,
  92.     verLithuania = 41,
  93.     verPoland = 42,
  94.     verHungary = 43,
  95.     verEstonia = 44,
  96.     verLatvia = 45
  97. };
  98. enum {
  99.     verLapland = 46,
  100.     verFaeroeIsl = 47,
  101.     verIran = 48,
  102.     verRussia = 49,
  103.     verIreland = 50,            /* English-language version for Ireland */
  104.     verKorea = 51,
  105.     verChina = 52,
  106.     verTaiwan = 53,
  107.     verThailand = 54,
  108.  
  109. #define minCountry verUS
  110. #define maxCountry verThailand
  111.  
  112. /*Obsolete region code names, kept for backward compatibility*/
  113.  
  114.     verBelgiumLux = 6,          /*(use verFrBelgiumLux instead, less ambiguous)*/
  115.     verArabia = 16,
  116.     verYugoslavia = 25,         /*(use verYugoCroatian instead, less ambiguous)*/
  117.     verIndia = 33,              /*(use verIndiaHindi instead, less ambiguous) */
  118.  
  119. /*special ScriptCode values*/
  120.     iuSystemScript = -1,        /* system script */
  121.     iuCurrentScript = -2,       /* current script */
  122.  
  123. /*special LangCode values*/
  124.     iuSystemCurLang = -2,       /* current (itlbLang) lang for system script */
  125.     iuSystemDefLang = -3,       /* default (table) lang for system script */
  126.     iuCurrentCurLang = -4,      /* current (itlbLang) lang for current script */
  127.     iuCurrentDefLang = -5,      /* default lang for current script */
  128.     iuScriptCurLang = -6        /* current (itlbLang) lang for specified script */
  129. };
  130. enum {
  131.     iuScriptDefLang = -7,       /* default language for a specified script */
  132.  
  133. /*table selectors for IUGetItlTable*/
  134.     iuWordSelectTable = 0,
  135.     iuWordWrapTable = 1,
  136.     iuNumberPartsTable = 2,
  137.     iuUnTokenTable = 3,
  138.     iuWhiteSpaceList = 4
  139. };
  140.  
  141. enum {shortDate,longDate,abbrevDate};
  142. typedef unsigned char DateForm;
  143.  
  144. enum {mdy,dmy,ymd,myd,dym,ydm};
  145. typedef unsigned char DateOrders;
  146.  
  147.  
  148. struct Intl0Rec {
  149.     char decimalPt;             /*decimal point character*/
  150.     char thousSep;              /*thousands separator*/
  151.     char listSep;               /*list separator*/
  152.     char currSym1;              /*currency symbol*/
  153.     char currSym2;
  154.     char currSym3;
  155.     unsigned char currFmt;      /*currency format*/
  156.     unsigned char dateOrder;    /*order of short date elements*/
  157.     unsigned char shrtDateFmt;  /*short date format*/
  158.     char dateSep;               /*date separator*/
  159.     unsigned char timeCycle;    /*0 if 24-hour cycle, 255 if 12-hour*/
  160.     unsigned char timeFmt;      /*time format*/
  161.     char mornStr[4];            /*trailing string for first 12-hour cycle*/
  162.     char eveStr[4];             /*trailing string for last 12-hour cycle*/
  163.     char timeSep;               /*time separator*/
  164.     char time1Suff;             /*trailing string for 24-hour cycle*/
  165.     char time2Suff;
  166.     char time3Suff;
  167.     char time4Suff;
  168.     char time5Suff;
  169.     char time6Suff;
  170.     char time7Suff;
  171.     char time8Suff;
  172.     unsigned char metricSys;    /*255 if metric, 0 if not*/
  173.     short intl0Vers;            /*version information*/
  174. };
  175.  
  176. typedef struct Intl0Rec Intl0Rec;
  177. typedef Intl0Rec *Intl0Ptr, **Intl0Hndl;
  178.  
  179. struct Intl1Rec {
  180.     Str15 days[7];              /*day names*/
  181.     Str15 months[12];           /*month names*/
  182.     unsigned char suppressDay;  /*0 for day name, 255 for none*/
  183.     unsigned char lngDateFmt;   /*order of long date elements*/
  184.     unsigned char dayLeading0;  /*255 for leading 0 in day number*/
  185.     unsigned char abbrLen;      /*length for abbreviating names*/
  186.     char st0[4];                /*strings for long date format*/
  187.     char st1[4];
  188.     char st2[4];
  189.     char st3[4];
  190.     char st4[4];
  191.     short intl1Vers;            /*version information*/
  192.     short localRtn[1];          /*routine for localizing string comparison*/
  193. };
  194.  
  195. typedef struct Intl1Rec Intl1Rec;
  196. typedef Intl1Rec *Intl1Ptr, **Intl1Hndl;
  197.  
  198.  
  199. #ifdef __cplusplus
  200. extern "C" {
  201. #endif
  202. pascal void InitPack(short packID)
  203.     = 0xA9E5; 
  204. pascal void InitAllPacks(void)
  205.     = 0xA9E6; 
  206.  
  207. pascal Handle IUGetIntl(short theID)
  208.     = {0x3F3C,0x0006,0xA9ED}; 
  209. pascal void IUSetIntl(short refNum,short theID,Handle intlHandle)
  210.     = {0x3F3C,0x0008,0xA9ED}; 
  211. pascal void IUDateString(long dateTime,DateForm longFlag,Str255 result)
  212.     = {0x4267,0xA9ED}; 
  213. pascal void IUDatePString(long dateTime,DateForm longFlag,Str255 result,
  214.     Handle intlHandle)
  215.     = {0x3F3C,0x000E,0xA9ED}; 
  216. pascal void IUTimeString(long dateTime,Boolean wantSeconds,Str255 result)
  217.     = {0x3F3C,0x0002,0xA9ED}; 
  218. pascal void IUTimePString(long dateTime,Boolean wantSeconds,Str255 result,
  219.     Handle intlHandle)
  220.     = {0x3F3C,0x0010,0xA9ED}; 
  221. pascal Boolean IUMetric(void)
  222.     = {0x3F3C,0x0004,0xA9ED}; 
  223. void iudatestring(long dateTime,DateForm longFlag,char *result); 
  224. void iudatepstring(long dateTime,DateForm longFlag,char *result,Handle intlHandle); 
  225. void iutimestring(long dateTime,Boolean wantSeconds,char *result); 
  226. void iutimepstring(long dateTime,Boolean wantSeconds,char *result,Handle intlHandle); 
  227.  
  228. pascal short IUMagString(const void *aPtr,const void *bPtr,short aLen,short bLen)
  229.     = {0x3F3C,0x000A,0xA9ED}; 
  230. pascal short IUMagIDString(const void *aPtr,const void *bPtr,short aLen,
  231.     short bLen)
  232.     = {0x3F3C,0x000C,0xA9ED}; 
  233. pascal short IUCompString(ConstStr255Param aStr,ConstStr255Param bStr); 
  234. pascal short IUEqualString(ConstStr255Param aStr,ConstStr255Param bStr); 
  235. short iucompstring(char *aStr,char *bStr); 
  236. short iuequalstring(char *aStr,char *bStr); 
  237.  
  238. pascal void StringToNum(ConstStr255Param theString,long *theNum); 
  239. void stringtonum(char *theString,long *theNum); 
  240. pascal void NumToString(long theNum,Str255 theString); 
  241. void numtostring(long theNum,char *theString); 
  242.  
  243. pascal void IULDateString(LongDateTime *dateTime,DateForm longFlag,Str255 result,
  244.     Handle intlHandle)
  245.     = {0x3F3C,0x0014,0xA9ED}; 
  246. pascal void IULTimeString(LongDateTime *dateTime,Boolean wantSeconds,Str255 result,
  247.     Handle intlHandle)
  248.     = {0x3F3C,0x0016,0xA9ED}; 
  249. void iuldatestring(LongDateTime *dateTime,DateForm longFlag,char *result,
  250.     Handle intlHandle); 
  251. void iultimestring(LongDateTime *dateTime,Boolean wantSeconds,char *result,
  252.     Handle intlHandle); 
  253. pascal void IUClearCache(void)
  254.     = {0x3F3C,0x0018,0xA9ED}; 
  255. pascal short IUMagPString(const void *aPtr,const void *bPtr,short aLen,
  256.     short bLen,Handle itl2Handle)
  257.     = {0x3F3C,0x001A,0xA9ED}; 
  258. pascal short IUMagIDPString(const void *aPtr,const void *bPtr,short aLen,
  259.     short bLen,Handle itl2Handle)
  260.     = {0x3F3C,0x001C,0xA9ED}; 
  261. pascal short IUCompPString(ConstStr255Param aStr,ConstStr255Param bStr,
  262.     Handle itl2Handle); 
  263. pascal short IUEqualPString(ConstStr255Param aStr,ConstStr255Param bStr,
  264.     Handle itl2Handle); 
  265. pascal short IUScriptOrder(ScriptCode script1,ScriptCode script2)
  266.     = {0x3F3C,0x001E,0xA9ED}; 
  267. pascal short IULangOrder(LangCode language1,LangCode language2)
  268.     = {0x3F3C,0x0020,0xA9ED}; 
  269. pascal short IUTextOrder(const void *aPtr,const void *bPtr,short aLen,short bLen,
  270.     ScriptCode aScript,ScriptCode bScript,LangCode aLang,LangCode bLang)
  271.     = {0x3F3C,0x0022,0xA9ED}; 
  272. pascal short IUStringOrder(ConstStr255Param aStr,ConstStr255Param bStr,
  273.     ScriptCode aScript,ScriptCode bScript,LangCode aLang,LangCode bLang); 
  274. pascal void IUGetItlTable(ScriptCode script,short tableCode,Handle *itlHandle,
  275.     long *offset,long *length)
  276.     = {0x3F3C,0x0024,0xA9ED}; 
  277. short iucomppstring(char *aStr,char *bStr,Handle intlHandle); 
  278. short iuequalpstring(char *aStr,char *bStr,Handle intlHandle); 
  279. short iustringorder(char *aStr,char *bStr,ScriptCode aScript,ScriptCode bScript,
  280.     LangCode aLang,LangCode bLang); 
  281. #ifdef __cplusplus
  282. }
  283. #endif
  284.  
  285. #endif
  286.